package com.ethannhu.todaynews

import android.app.Application
import com.drake.channel.sendEvent
import com.ethannhu.todaynews.component.login.LoginStatusChangedEvent
import com.ethannhu.todaynews.config.Config
import com.ethannhu.todaynews.util.PreferenceUtil
import com.tencent.mmkv.MMKV
import timber.log.Timber

class AppContext : Application() {
    companion object {
        const val TAG = "AppContext"
        lateinit var instance: AppContext
    }

    override fun onCreate() {
        super.onCreate()
        instance = this

        initLog()
        initMMKV()
    }

    fun logout() {
        logoutSilence()
    }


    fun onLogin() {
        loginStatusChanged()
    }

    private fun logoutSilence() {
        //清除登录信息
        PreferenceUtil.logout()
        loginStatusChanged()


    }

    private fun loginStatusChanged() {
        sendEvent(LoginStatusChangedEvent(), "tag_logout")
    }

    private fun initLog() {
        if (Config.DEBUG) {
            Timber.plant(Timber.DebugTree())
        } else {
            //可以上报到任何地方，真实项目大部分都会用第三方日志服务
            //例如：阿里云日志服务，或者自己公司有；打印到文件那种现在用的太少了，所以也就不实现了

        }
    }
    /**
     * 初始化 腾讯开源的高性能keyValue存储，用来替代系统的SharedPreferences
     */
    private fun initMMKV() {
        val rootDir = MMKV.initialize(this)
    }


}